﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace KPIS.GERP.GFMS.MODEL
{
    [Serializable]
    public class M_HRM_PR_PayrollDtls
    {
        // hrm_pr_payroll_dtls
        private int PAY_DTLS_SEQ;
        private Nullable<int> PAY_SEQ;
        private Nullable<int> EMP_SEQ;
        private Nullable<int> JOB_SITE_SEQ;
        private Nullable<int> EXT_SEQ;
        private Nullable<double> AMOUNT;
        private Nullable<double> AMOUNT_PAY;
        private string REMARKS;
        private Nullable<int> MONEY_REQ_DTLS_SEQ;

        private Nullable<double> INCOME_AMOUNT;
        private Nullable<double> DEDUCT_AMOUNT;
        private Nullable<double> TOTAL_AMOUNT;

        // hrm_pr_payrolls
        private Nullable<int> EMP_TYPE_SEQ;
        private Nullable<int> PAY_YEAR;
        private Nullable<int> PAY_MONTH;

        // hrm_ps_employee_types
        private string EMP_TYPE_NAME;

        // hrm_pr_extra_types
        private string EXT_CODE;
        private string EXT_NAME;
        private string EXT_NAME_SHORT;
        private string EXT_FLAG;
        private string EXT_TAX;
        private string EXT_MONTHLY;

        // hrm_ps_employees
        private string EMP_NAME;
        private Nullable<int> WORKING_JOB_SITE_SEQ;
        private Nullable<int> POS_SEQ;
        private Nullable<int> CLASS_SEQ;

        // hrm_mp_job_sites
        private string JOB_SITE_GFMIS;
        private string JOB_SITE_NAME_GFMIS;

        // hrm_mp_positions
        private string POS_REF;
        private string POS_NAME;

        // hrm_mp_classes
        private string CLASS_NAME;

        private string RECORD_STATUS;
        private Nullable<int> CREATED_BY;
        private Nullable<DateTime> CREATED_WHEN;
        private Nullable<int> UPDATED_BY;
        private Nullable<DateTime> UPDATED_WHEN;

        public M_HRM_PR_PayrollDtls()
        {

        }

        public M_HRM_PR_PayrollDtls(
            int PAY_DTLS_SEQ
            , Nullable<int> PAY_SEQ
            , Nullable<int> EMP_SEQ
            , Nullable<int> JOB_SITE_SEQ
            , Nullable<int> EXT_SEQ
            , Nullable<double> AMOUNT
            , Nullable<double> AMOUNT_PAY
            , string REMARKS
            , Nullable<int> MONEY_REQ_DTLS_SEQ

            , Nullable<double> INCOME_AMOUNT
            , Nullable<double> DEDUCT_AMOUNT
            , Nullable<double> TOTAL_AMOUNT

            , Nullable<int> EMP_TYPE_SEQ
            , Nullable<int> PAY_YEAR
            , Nullable<int> PAY_MONTH

            , string EMP_TYPE_NAME

            , string EXT_CODE
            , string EXT_NAME
            , string EXT_NAME_SHORT
            , string EXT_FLAG
            , string EXT_TAX
            , string EXT_MONTHLY

            , string EMP_NAME
            , Nullable<int> WORKING_JOB_SITE_SEQ
            , Nullable<int> POS_SEQ
            , Nullable<int> CLASS_SEQ

            , string JOB_SITE_GFMIS
            , string JOB_SITE_NAME_GFMIS

            , string POS_REF
            , string POS_NAME

            , string CLASS_NAME

            , string RECORD_STATUS
            , Nullable<int> CREATED_BY
            , Nullable<DateTime> CREATED_WHEN
            , Nullable<int> UPDATED_BY
            , Nullable<DateTime> UPDATED_WHEN)
        {
            this.PAY_DTLS_SEQ = PAY_DTLS_SEQ;
            this.PAY_SEQ = PAY_SEQ;
            this.EMP_SEQ = EMP_SEQ;
            this.JOB_SITE_SEQ = JOB_SITE_SEQ;
            this.EXT_SEQ = EXT_SEQ;
            this.AMOUNT = AMOUNT;
            this.AMOUNT_PAY = AMOUNT_PAY;
            this.REMARKS = REMARKS;
            this.MONEY_REQ_DTLS_SEQ = MONEY_REQ_DTLS_SEQ;
            this.INCOME_AMOUNT = INCOME_AMOUNT;
            this.DEDUCT_AMOUNT = DEDUCT_AMOUNT;
            this.TOTAL_AMOUNT = TOTAL_AMOUNT;
            this.EMP_TYPE_SEQ = EMP_TYPE_SEQ;
            this.PAY_YEAR = PAY_YEAR;
            this.PAY_MONTH = PAY_MONTH;
            this.EMP_TYPE_NAME = EMP_TYPE_NAME;
            this.EXT_CODE = EXT_CODE;
            this.EXT_NAME = EXT_NAME;
            this.EXT_NAME_SHORT = EXT_NAME_SHORT;
            this.EXT_FLAG = EXT_FLAG;
            this.EXT_TAX = EXT_TAX;
            this.EXT_MONTHLY = EXT_MONTHLY;
            this.EMP_NAME = EMP_NAME;
            this.WORKING_JOB_SITE_SEQ = WORKING_JOB_SITE_SEQ;
            this.POS_SEQ = POS_SEQ;
            this.CLASS_SEQ = CLASS_SEQ;
            this.JOB_SITE_GFMIS = JOB_SITE_GFMIS;
            this.JOB_SITE_NAME_GFMIS = JOB_SITE_NAME_GFMIS;
            this.POS_REF = POS_REF;
            this.POS_NAME = POS_NAME;
            this.CLASS_NAME = CLASS_NAME;
            this.RECORD_STATUS = RECORD_STATUS;
            this.CREATED_BY = CREATED_BY;
            this.CREATED_WHEN = CREATED_WHEN;
            this.UPDATED_BY = UPDATED_BY;
            this.UPDATED_WHEN = UPDATED_WHEN;
        }

        public int pay_dtls_seq
        {
            set { PAY_DTLS_SEQ = value; }
            get { return PAY_DTLS_SEQ; }
        }

        public Nullable<int> pay_seq
        {
            set { PAY_SEQ = value; }
            get { return PAY_SEQ; }
        }

        public Nullable<int> emp_seq
        {
            set { EMP_SEQ = value; }
            get { return EMP_SEQ; }
        }

        public Nullable<int> job_site_seq
        {
            set { JOB_SITE_SEQ = value; }
            get { return JOB_SITE_SEQ; }
        }

        public Nullable<int> ext_seq
        {
            set { EXT_SEQ = value; }
            get { return EXT_SEQ; }
        }

        public Nullable<double> amount
        {
            set { AMOUNT = value; }
            get { return AMOUNT; }
        }

        public Nullable<double> amount_pay
        {
            set { AMOUNT_PAY = value; }
            get { return AMOUNT_PAY; }
        }

        public string remarks
        {
            set { REMARKS = value; }
            get { return REMARKS; }
        }

        public Nullable<int> money_req_dtls_seq
        {
            set { MONEY_REQ_DTLS_SEQ = value; }
            get { return MONEY_REQ_DTLS_SEQ; }
        }

        public Nullable<double> income_amount
        {
            set { INCOME_AMOUNT = value; }
            get { return INCOME_AMOUNT; }
        }

        public Nullable<double> deduct_amount
        {
            set { DEDUCT_AMOUNT = value; }
            get { return DEDUCT_AMOUNT; }
        }

        public Nullable<double> total_amount
        {
            set { TOTAL_AMOUNT = value; }
            get { return TOTAL_AMOUNT; }
        }

        public Nullable<int> emp_type_seq
        {
            set { EMP_TYPE_SEQ = value; }
            get { return EMP_TYPE_SEQ; }
        }

        public Nullable<int> pay_year
        {
            set { PAY_YEAR = value; }
            get { return PAY_YEAR; }
        }

        public Nullable<int> pay_month
        {
            set { PAY_MONTH = value; }
            get { return PAY_MONTH; }
        }


        public string emp_type_name
        {
            set { EMP_TYPE_NAME = value; }
            get { return EMP_TYPE_NAME; }
        }


        public string ext_code
        {
            set { EXT_CODE = value; }
            get { return EXT_CODE; }
        }

        public string ext_name
        {
            set { EXT_NAME = value; }
            get { return EXT_NAME; }
        }

        public string ext_name_short
        {
            set { EXT_NAME_SHORT = value; }
            get { return EXT_NAME_SHORT; }
        }

        public string ext_flag
        {
            set { EXT_FLAG = value; }
            get { return EXT_FLAG; }
        }

        public string ext_tax
        {
            set { EXT_TAX = value; }
            get { return EXT_TAX; }
        }

        public string ext_monthly
        {
            set { EXT_MONTHLY = value; }
            get { return EXT_MONTHLY; }
        }


        public string emp_name
        {
            set { EMP_NAME = value; }
            get { return EMP_NAME; }
        }

        public Nullable<int> working_job_site_seq
        {
            set { WORKING_JOB_SITE_SEQ = value; }
            get { return WORKING_JOB_SITE_SEQ; }
        }

        public Nullable<int> pos_seq
        {
            set { POS_SEQ = value; }
            get { return POS_SEQ; }
        }

        public Nullable<int> class_seq
        {
            set { CLASS_SEQ = value; }
            get { return CLASS_SEQ; }
        }


        public string job_site_gfmis
        {
            set { JOB_SITE_GFMIS = value; }
            get { return JOB_SITE_GFMIS; }
        }

        public string job_site_name_gfmis
        {
            set { JOB_SITE_NAME_GFMIS = value; }
            get { return JOB_SITE_NAME_GFMIS; }
        }


        public string pos_ref
        {
            set { POS_REF = value; }
            get { return POS_REF; }
        }

        public string pos_name
        {
            set { POS_NAME = value; }
            get { return POS_NAME; }
        }


        public string class_name
        {
            set { CLASS_NAME = value; }
            get { return CLASS_NAME; }
        }


        public string record_status
        {
            set { RECORD_STATUS = value; }
            get { return RECORD_STATUS; }
        }

        public Nullable<int> created_by
        {
            set { CREATED_BY = value; }
            get { return CREATED_BY; }
        }

        public Nullable<DateTime> created_when
        {
            set { CREATED_WHEN = value; }
            get { return CREATED_WHEN; }
        }

        public Nullable<int> updated_by
        {
            set { UPDATED_BY = value; }
            get { return UPDATED_BY; }
        }

        public Nullable<DateTime> updated_when
        {
            set { UPDATED_WHEN = value; }
            get { return UPDATED_WHEN; }
        }
    }
}
